package com.wodsy.phoenix.dataservice.shopc.service;

import com.wodsy.phoenix.dataobject.base.PhoenixGenericResponse;
import com.wodsy.phoenix.dataobject.base.PhoenixResponseWrapper;
import com.wodsy.phoenix.dataobject.shopc.model.GoodsClassInShop;
import com.wodsy.phoenix.dataobject.shopc.model.GoodsClassInShopCascade;
import com.wodsy.phoenix.dataobject.shopc.model.GoodsGcisRelation;

import java.util.List;


public interface GoodsClassInShopService{
	/**
	 * 添加店铺自定义分类 GoodsClassInShop
	 * @param gc
	 */
	PhoenixResponseWrapper<PhoenixGenericResponse> addGoodsClassInShop(GoodsClassInShop gc);
	/**
	 * 添加店铺自定义分类 GoodsClassInShop
	 * @param gcs
	 */
	PhoenixResponseWrapper<PhoenixGenericResponse> addGoodsClassInShops(List<GoodsClassInShop> gcs);
	
	/**
	 * 删除店铺自定义分类 同时删除分类下商品 如果是父分类 删除所有子分类及商品
	 * @param gcId
	 */
	PhoenixResponseWrapper<PhoenixGenericResponse> delGoodsClassInShop(Integer gcId);
	
	/**
	 * 修改店铺自定义分类
	 * @param gc
	 */
	PhoenixResponseWrapper<PhoenixGenericResponse> updateGoodsClassInShop(GoodsClassInShop gc);
	
	/**
	 * 查询某店铺自定义分类
	 * @param shopId
	 * @return
	 */
	PhoenixResponseWrapper<GoodsClassInShop> findGoodsClassInShopsBy(Integer shopId);
	
	/**
	 * 查询某店铺自定义分类 及 各分类下所有商品
	 * @param shopId
	 * @return
	 */
	PhoenixResponseWrapper<GoodsClassInShopCascade>findGoodsClassInShopCascadesBy(Integer shopId);
	
	/**
	 * 查询某自定义分类下的所有商品
	 * @param gcId
	 * @return
	 */
	PhoenixResponseWrapper<GoodsGcisRelation> findGoodsGcisRelations(Integer gcId);
	
	/**
	 * 添加店铺自定义分类关联商品
	 * @param rel
	 */
	PhoenixResponseWrapper<PhoenixGenericResponse> addGoodsGcisRelation(GoodsGcisRelation rel);
	/**
	 * 添加店铺自定义分类关联商品
	 * @param rels
	 */
	PhoenixResponseWrapper<PhoenixGenericResponse> addGoodsGcisRelations(List<GoodsGcisRelation> rels);
	
	/**
	 * 删除店铺自定义分类关联商品
	 * @param rel
	 */
	PhoenixResponseWrapper<PhoenixGenericResponse> delGoodsGcisRelation(GoodsGcisRelation rel);
}
